/**
 * @file RobotData.h
 * @author Kevin Vancauwenbergh,Stijn Frans
 * @brief Declares the RobotData class, which contains the data of our robot send by the vision team
 */

#ifndef ROBOTDATA_H
#define ROBOTDATA_H

#include <string>
#include <iostream>
using namespace std;
/**
 * @brief Defines the class 'RobotData', Which will contain the position and angle of the robot aswell as the position of the garage and the can to pick up.
 */

class RobotData {
	/** The x location of the robot **/	
	int robotX;
	
	/** The y location of the robot **/
	int robotY;
		
	/** The angle, in degrees, the robot makes with the bottom **/
	int angle;

	/** The x coordinate of the can **/
	int blikjeX;

	/** The y coordinate of the can **/
	int blikjeY;

	/** The x coordinate of the garage **/
	int garageX;

	/** The y coordinate of the garage **/
	int garageY;

public:
		/**
		 * @brief Constructor of the class RobotData.
		* @param int Xposition
		*@param int Yposition
		*@param int angle
		*@param int Xcan
		*@param int Ycan
		*@param int Xgarage
		*@param int Ygarage
		 */
	RobotData(int x,int y,int a,int bx,int by,int gx, int gy);
	/**
		 * @brief Constructor of the class RobotData.
		 */
	RobotData();
		/**
		 * @brief Getter for Xposition robot.
		 *
		 * @return	integer Xposition robot.
		 */
	int get_robotX();
	/**
		 * @brief Getter for Yposition robot.
		 *
		 * @return	integer Yposition robot.
		 */
	int get_robotY();
	/**
		 * @brief Getter for Angle robot.
		 *
		 * @return	integer Angle robot.
		 */
	int get_angle();
	/**
		 * @brief Setter for Xposition robot.
		 *
		 * @param	int Xposition robot.
		 */

	void set_robotX(int x);
	/**
		 * @brief Setter for Yposition robot.
		 *
		 * @param	int Yposition robot.
		 */

	void set_robotY(int y);
	/**
		 * @brief Setter for Angle robot.
		 *
		 * @param	int Angle robot.
		 */

	void set_angle(int a);
	
	/**
		 * @brief Setter for robot.
		 *
		 * @param	int Xposition
		  *@param int Yposition
		 *@paramint Angle.
		 */


	void set_robot(int x,int y,int a);
	/**
		 * @brief Getter for Xposition can.
		 *
		 * @return	integer Xposition can.
		 */

	int get_blikjeX();
		/**
		 * @brief Getter for Yposition can.
		 *
		 * @return	integer Yposition can.
		 */
	int get_blikjeY();
			/**
		 * @brief Setter for Xposition can.
		 *
		 * @param	integer Xposition can.
		 */

	void set_blikjeX(int bx);
	/**
			 * @brief Setter for Yposition can.
		 *
		 * @param	integer Yposition can.
		 */
	void set_blikjeY(int by);

	/**
			 * @brief Setter for  can.
		 *
		 * @param	integer Xposition can
		*@param integer Yposition can
		 */

	void set_blikje(int bx,int by);
		/**
			 * @brief Getter for Xposition garage.
		 *
		 * @return int Xposition garage
		 */

	int get_garageX();
		/**
		 * @brief Getter for Yposition garage.
		 *
		 * @return int Yposition garage
		 */
	int get_garageY();
				/**
			 * @brief Setter for Xposition garage.
		 *
		 * @param int Xposition garage
		 */

	void set_garageX(int gx);
				/**
			 * @brief Setter for Yposition garage.
		 *
		 * @param int Yposition garage
		 */
	void set_garageY(int gy);
				/**
			 * @brief Setter for garage.
		 *
		 * @param int Xposition garage
		 */

	void set_garage(int gx,int gy);
		
		/**
		 * @brief Print function for all the data of robotdata
		 */

	void print();
			/**
		 * @brief fills the Robot with dummyvalues
		 */
	void FillWithDummyValues();


};

#endif
